package controle;

import java.util.ArrayList;
import java.util.List;

import DAO.TimeDAO;
import DAO.TimeDAO;
import DAO.DAOFactory;

import modelo.Time;
import modelo.Time;
import modelo.Time;
/**
 * 
 * @author douglas_joaquim
 *
 *Controle time implementa time
 */
public class ControleTime implements Controle<Time>{
/**
 * Vai salvar os times ou alterar
 */
	@Override
	public void salvar(Time e) throws Exception {
		if(e.getEstadio()==null)
			throw new Exception("Estadio obrigatorio");
		if(e.getNome().equals(""))
			throw new Exception("Nome eh obrigatorio");
		TimeDAO timeDAO = DAOFactory.getTimeDAO();
		if(e.getIdTime()==0)
			timeDAO.salvar(e);
		else
			timeDAO.alterar(e);
	}
/**
 * Vai excluir os times
 */
	@Override
	public void excluir(Time e) {
	TimeDAO timeDAO = DAOFactory.getTimeDAO();
		
		timeDAO.deletar(e);
		
	}
/**
 * Busca e cria uma lista de times por id ou nome
 */
	@Override
	public List<Time> buscar(Time e) throws Exception {
		List<Time> times = new ArrayList<Time>();
		TimeDAO timeDAO = DAOFactory.getTimeDAO();
		if((!e.getNome().equals("")) && (e.getIdTime()==0))
			times = timeDAO.buscaTimePorNome(e);
		if((e.getNome().equals("")) || (e.getIdTime()!=0))
			times = timeDAO.buscaTimePorId(e);
		if((e.getNome().equals("")) && (e.getIdTime()==0))
			throw new Exception("Nome ou id sao necessarios");
		
			
			
		return times;
	}
/**
 * Busca cria e retorna uma lista de todos os times
 */
	@Override
	public List<Time> buscarTodos(){
		List<Time> times = new ArrayList<Time>();
		TimeDAO timeDAO = DAOFactory.getTimeDAO();
		times = timeDAO.findAll();
		return times;

	}

}
